#BotMainで使う関数をまとめて書いておく
require 'rubygems'
require 'httpclient'
require 'json'
require 'uri'
require 'net/http'
require 'rss'

require 'special_friends/KawashiroNitori'
require 'special_friends/FlandreBot'

$KCODE = 'UTF8'

#特別なお友達には特別な返事を返します。
#sayがtrueだとこちらから話しかけます。
def for_special_friend(message='',name='',mode='reply')
	mode='say' if (message=='' or name=='')
	if (mode=='say' and name=='') then
		friends = ["FlandreBot", "KawashiroNitori"]
		name = friends[rand(friends.size)]
	end

	answer='' 

	if mode=='ILL' then
		answer=chat_FlandreBot(message,mode,name) if answer==''
		answer=chat_KawashiroNitori(message,mode,name) if answer==''
	else
		case name
		when 'FlandreBot','FrandleBot','flandre_bot','frandre_bot'
			answer=chat_FlandreBot(message,mode)
		when 'KawashiroNitori'
			answer=chat_KawashiroNitori(message,mode)
		end
	end

	return answer
end

#一人じゃ無理なので、他の人に協力を頼みます。
def ILL(message='',from='')

	result=''

	case message
	#ふわっとCiNiiに調べてもらう。$
	when %r((^\[DO\]|^\[関連\]))
		result = url_relevance_search(message,'cinii')
	else #友達に頼む
		result = for_special_friend(message,from,'ILL')
	end

	result = "[ILL] #{result}" if result!=''

	return result
end

#セキュリティ情報を調べます

#RSSにアクセスします
#http://yakinikunotare.boo.jp/orebase/index.php?Ruby%2FRSS%A4%F2%C6%C9%A4%E0
#RSSサイトによって書き換えないといけないのでまったくもって使えない。。。
def RSS_access(rss_url)
end
#p RSS_access('feed://code.google.com/feeds/p/libro-twitter-bot/svnchanges/basic')


# "診断メーカー"(http://shindanmaker.com)での診断を行なう
SHINDAN_MAKER_URL = 'http://shindanmaker.com'
def get_shindan_maker(id, user)
	client = HTTPClient.new
	url = "#{SHINDAN_MAKER_URL}/#{id}"
	resp = client.post_content(url, {'u' => user})
	if resp =~ %r(a href="http://twitter.com/home\?status=([^\"]*)")
		return URI.decode($1).gsub('+', ' ')
	else
		return nil
	end
end



#URL先に関連したサイトを探します
def url_relevance_search(message,mode)
	answer=''
  URI.extract(message, %w[http https ftp]) do |uri|
		answer = huwat_cinii(uri) if(mode=='cinii')
  end
  return answer
end

#ふわっと関連検索CiNiiを使って探します。
def huwat_cinii(url)
	query = "url=#{URI.encode(url)}&format=json"
	result = JSON.parse(Net::HTTP.get("fuwat.to", "/cinii/?#{query}"))
	$KCODE = 'UTF8'
	if(result["entries"][0]!=nil) then
		title = URI.decode(result["entries"][0]['title'])
		link =  URI.decode(result["entries"][0]['url'])
		huwat_link = "http://fuwat.to/cinii?url=#{URI.encode(url)}"
		return "つ 「#{title}」 ( #{link} ) 他にはこんなの-> #{huwat_link}"
	end
end

#p url_relevance_search('http://fuwat.to','cinii')
